package scanner;

public class Token {
	public enum TokenType{
		ELSE_TOKEN,
		IF_TOKEN,
		INT_TOKEN,
		RETURN_TOKEN,
		VOID_TOKEN,
		WHILE_TOKEN,
		PLUS_TOKEN,
		MINUS_TOKEN,
		MULT_TOKEN,
		DIV_TOKEN,
		LT_TOKEN,
		LTE_TOKEN,
		GT_TOKEN,
		GTE_TOKEN,
		EQUALITY_TOKEN,
		NOT_EQUAL_TOKEN,
		ASSIGN_TOKEN,
		SEMICOLON_TOKEN,
		COMMA_TOKEN,
		OPAREN_TOKEN,
		CPAREN_TOKEN,
		OBRACE_TOKEN,
		CBRACE_TOKEN,
		OCURLY_TOKEN,
		CCURLY_TOKEN,
		ID_TOKEN,
		NUM_TOKEN,
		EOF_TOKEN,
		ERROR_TOKEN
	}
	
	private TokenType tokenType;
	private Object tokenData;
	
	public Token(TokenType type){
		this(type, null);
	}
	
	public Token(TokenType type, Object data){
		tokenType = type;
		tokenData = data;
	}

	public TokenType getType() {
		return tokenType;
	}
	
	public Object getData(){
		return tokenData;
	}
}
